#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>


//void reversal(int* nums, int begin, int end)
//{
//	int tmp = 0;
//	while (begin < end)
//	{
//		tmp = nums[begin];
//		nums[begin] = nums[end];
//		nums[end] = tmp;
//		begin++;
//		end--;
//	}
//
//}
//
//void rotate(int* nums, int numsSize, int k)
//{
//	/*int m = k % numsSize;
//	int i = 0;
//	if (numsSize == 0)
//	{
//		return;
//	}
//	else if (m == 0)
//	{
//		for (i = 0; i < numsSize; i++)
//		{
//			printf("%d ", arr[i]);
//		}
//	}
//	else
//	{
//		for (i = numsSize - m; i < numsSize; i++)
//		{
//			printf("%d ", arr[i]);
//
//		}
//		for (i = 0; i < numsSize - m; i++)
//		{
//			printf("%d ", arr[i]);
//		}
//	}*/
//
//	int m = k % numsSize;
//	reversal(nums, 0, numsSize - m - 1);
//	reversal(nums, numsSize - m, numsSize - 1);
//	reversal(nums, 0, numsSize - 1);
//
//
//}



void rotate(int* nums, int numsSize, int k)
{
	 k =k%numsSize;
	int* ptr = (int*)malloc(numsSize * sizeof(int));
	if (NULL == ptr)
	{
		perror("rotate::malloc");
	}
	else
	{
		memcpy(ptr, nums + numsSize - k, sizeof(int)*k);
		memcpy(ptr + k, nums, (numsSize - k)*sizeof(int));
		memcpy(nums, ptr, numsSize*sizeof(int));
	}

	free(ptr);
	ptr = NULL;

}

int main()
{
	int nums[] = { 1,2,3,4,5,6,7 };
	int k = 0;
	scanf("%d", &k);
	rotate(nums, sizeof(nums)/sizeof(int), k);


	return 0;

}